package com.cy.pj.commom分页工具类和异常定义类.util分页工具类;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

import javax.servlet.http.HttpServletRequest;

/**
 * 定义分页操作工具类，在此类方法内部启动分页查询
 */
//返回值类型Page是泛型，当类上没有写< >泛型时，类里方法上是不可以直接写泛型的
    //
public class PageUtil分页工具类 {
    //public公共的，其它类也可以调用
    // static静态资源，只加载一次，可以直接通过类调用startPage()--PageUtil分页工具类.startPage()
  public static <T>Page<T> startPage() {
        //1，获取请求对象
        //RequestContextHolder底层类型是object，所以大-->小，要强转
        //ServletRequestAttributes sra=
             //   (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
      //HttpServletRequest request=sra.getRequest();

      //静态工具类封装了过程
      HttpServletRequest request= ServletUntil封装获取请求的属性和值的过程.getRequest();

//2，获取请求中的分页参数对象
      //前端传过来的是 pageCurrent="3",要转化为int
        String pageCurrentStr=request.getParameter("pageCurrent");//当前页码值(要查第几页的数据)
        String pageSizeStr=request.getParameter("pageSize");//页面大小(每页最多显示多少条记录)
        //工具类封装了判断
        //判断请求是不是为空或空串，为空就默认个值，不为空就解析请求并返回整数型(parseInt把String转化为int)
int pageCurrent=StringUtil封装了判断请求是否为空的boolean类型的代码.isEmpty(pageCurrentStr)?1:Integer.parseInt(pageCurrentStr);
int pageSize=StringUtil封装了判断请求是否为空的boolean类型的代码.isEmpty(pageSizeStr)?3:Integer.parseInt(pageSizeStr);


//3，启动 PageHelper 中的分页拦截器(PageInterceptor)
return PageHelper.startPage(pageCurrent, pageSize);
    }
}



